﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace FrontEndPlus.Módulos.Inventarios
{
    public partial class wbfrm_Buscar_Producto : System.Web.UI.Page
    {
        #region Variables

        private WCF_Gimnasio.cls_Producto _producto = new WCF_Gimnasio.cls_Producto();
        private WCF_Gimnasio.ServiceClient _servicio = new WCF_Gimnasio.ServiceClient();


        #endregion
        #region Metodos
        private void CargarProductos()
        {
            _producto.IdUsuarioInicioSeccion = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString());
            _producto.IdProveedor = Convert.ToInt32(Request.QueryString["idProv"]);
            gv_productos.DataSource = _servicio.Listar(4, _producto);
            gv_productos.DataBind();
            _servicio.Close();
            if (gv_productos.Rows.Count <= 0)
                lbl_mensaje.Text = "NO HAY PRODUCTOS DISPONIBLES";
            else
                lbl_mensaje.Text = string.Empty;

        }
        private void retornaDatos(int fila)
        {
            if (fila > -1)
            {
                string idProveedor = Request.QueryString["idProv"];
                string nomProv = Request.QueryString["nomProv"];
                string plazo = Request.QueryString["plazo"];
                string id_producto = gv_productos.Rows[fila].Cells[0].Text;
                string codigo = gv_productos.Rows[fila].Cells[1].Text;
                string nombre = gv_productos.Rows[fila].Cells[2].Text;

                Response.Redirect("wbfrm_Pedidos_Proveedores.aspx?idProd=" + id_producto + "&codProd=" + codigo + "&nomProd=" + nombre+"&idProv="+idProveedor+"&nomProv="+nomProv+"&plazo="+plazo);

            }
            
        }
        private void filtraProductos(string filtro)
        {
            try
            {
                _producto.IdUsuarioInicioSeccion = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString());
                _producto.IdProveedor = Convert.ToInt32(Request.QueryString["idProv"]);
                string[] arreglo = new string[2];
                arreglo[0] = "0";
                arreglo[1] = filtro;
                _producto.Filtros = arreglo;

                gv_productos.DataSource = _servicio.Listar(5, _producto);
                gv_productos.DataBind();
                _servicio.Close();
                if (gv_productos.Rows.Count <= 0)
                    lbl_mensaje.Text = "NO HAY PRODUCTOS CON LOS DATOS SUMINISTRADOS";
                else
                    lbl_mensaje.Text = string.Empty;
            }
            catch (Exception ex) { Response.Write(ex.Message); }
        }
        #endregion
        #region Eventos
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.CargarProductos();
                
            }
        }


        protected void b_volver_Click(object sender, EventArgs e)
        {

            string idProveedor = Request.QueryString["idProv"];
            string nomProv = Request.QueryString["nomProv"];
            string plazo = Request.QueryString["plazo"];

            Response.Redirect("wbfrm_Pedidos_Proveedores.aspx?&idProv=" + idProveedor + "&nomProv=" + nomProv + "&plazo=" + plazo);

        }

        protected void gv_productos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int fila = Convert.ToInt32(e.CommandArgument);
            this.retornaDatos(fila);    
        }
        #endregion

        protected void txt_nombre_TextChanged(object sender, EventArgs e)
        {
            if (txt_nombre.Text != string.Empty)
                this.filtraProductos(txt_nombre.Text);
            else
                this.CargarProductos();
        }
    }
}